package ar.com.seminario.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;

import ar.com.seminario.systema.model.Usuario;
import ar.com.seminario.systema.service.ILogInnService;

/**
 * 
 * Controlador generico de la aplicacion.
 * 
 * @author Pablo Lamas
 * 
 */
@Controller
public class GenericController {

	/**
	 * Servicio que controla el log inn a la aplicacion.
	 */
	@Autowired
	private ILogInnService logInnService;

	/**
	 * Carga los datos minimos de la web al modelo a mostrar.
	 */
	public void getStartModel(ModelMap model,HttpServletRequest request) throws Exception {
			
		HttpSession session = request.getSession();
		Usuario usuario = (Usuario) session.getAttribute("usuarioEnSession"); 
		
		model.put("opciones",  this.logInnService.getOptionsByUserId(usuario.getId()));
		model.put("userLogued", usuario);
		model.put("userLoguedperfil", usuario.getTipoUsuario().getCode());
		model.put("perfilUsuarioId",usuario.getTipoUsuario().getId());
		
	}
	
	/**
	 * Arma la respuesta a la web luego de ejecutar una transaccion.
	 * 
	 * @param transactionResult
	 *            resultado de la transaccion.
	 * @param transactionResultMessage
	 *            mensaje a enviar.
	 * 
	 * @return respuesta a la transaccion.
	 */
	protected String armarRespuesta(final Boolean transactionResult, final String transactionResultMessage) {

		final StringBuilder respuesta = new StringBuilder("{");
		respuesta.append('"');
		respuesta.append("transactionResult");
		respuesta.append('"');
		respuesta.append(':');
		respuesta.append('"');
		respuesta.append(transactionResult.toString());
		respuesta.append('"');
		respuesta.append(',');
		respuesta.append('"');
		respuesta.append("transactionResultMessage");
		respuesta.append('"');
		respuesta.append(':');
		respuesta.append('"');
		respuesta.append(transactionResultMessage);
		respuesta.append('"');
		respuesta.append("}");

		return respuesta.toString();
	}
}
